package lzyc.pointsManagement.business.course.convertor;

import lzyc.pointsManagement.business.course.domain.CourseInfo;
import lzyc.pointsManagement.business.course.dto.CourseInfoDto;
import lzyc.pointsManagement.common.utils.StringUtils;
import lzyc.pointsManagement.common.utils.uuid.IdUtils;

import java.util.Date;

public class CourseInfoConvertor {
    public static CourseInfoDto convertToDto(CourseInfo entity)
    {
        CourseInfoDto dto = new CourseInfoDto();
        dto.setAttachment(entity.getAttachment());
        dto.setCreateTime(entity.getCreateTime());
        dto.setEndTime(entity.getEndTime());
        dto.setId(entity.getId());
        dto.setScore(entity.getScore());
        dto.setName(entity.getName());
        dto.setFrontCover(entity.getFrontCover());
        dto.setDescription(entity.getDescription());
        return dto;
    }

    public static CourseInfo convertToEntity(CourseInfoDto dto) {
        CourseInfo entity = new CourseInfo();
        if (StringUtils.isEmpty(dto.getId())) {
            entity.setId(IdUtils.randomUUID());
        } else {
            entity.setId(dto.getId());
        }
        entity.setAttachment(dto.getAttachment());
        if (dto.getCreateTime() == null) {
            entity.setCreateTime(new Date());
        } else {
            entity.setCreateTime(dto.getCreateTime());
        }
        entity.setEndTime(dto.getEndTime());
        entity.setScore(dto.getScore());
        entity.setName(dto.getName());
        entity.setFrontCover(dto.getFrontCover());
        entity.setDescription(dto.getDescription());
        return entity;
    }
}
